import Vue from 'vue'
import VueRouter from 'vue-router'
import { routers } from './routers'
// import store from '@/store'
// import iView from 'view-design'
// import { getToken } from '@/libs/util'
// import Main from '@/view/main'
// import { getPost } from '@/libs/ajax.js'
Vue.use(VueRouter)
// 路由配置
const RouterConfig = {
  routes: routers
  // mode: 'history'
}

// 创建VueRouter 实例
export const router = new VueRouter(RouterConfig)

router.beforeEach((to, from, next) => {
  next()
})
// 登录路由拦截
// router.beforeEach((to, from, next) => {
//   iView.LoadingBar.start()
//   const token = getToken()
//   // 判断是否已经登录且前往的页面不是登录页
//   if (!token) {
//     next({
//       name: 'home'
//     })
//   } else {
//     next()
//   }
// })
// 模拟动态配置路由
// let arr = [
//   {
//     menuName: '测试菜单',
//     isLeaf: '0',
//     menuIcon: 'md-aperture',
//     menuUrl: '/testMenu',
//     menuPid: '0',
//     recordId: '74',
//     routerName: 'testMenu',
//     parentMenuName: '',
//     menus: [
//       {
//         menuName: '页面',
//         isLeaf: '1',
//         menuIcon: '_fa-headphones',
//         menuUrl: '/testMenu/menus/content',
//         menuPid: '74',
//         recordId: '77',
//         routerName: 'menus',
//         parentMenuName: '测试菜单'
//       }
//     ]
//   }
// ]
// let getRouter
// router.beforeEach((to, from, next) => {
//   const token = getToken()
//   if (token && to.name !== 'login' && to.name !== 'registered' && to.name !== 'forgotPwd') {
//     if (!getRouter) {
//       getRouter = arr
//       store.state.app.menuList = filterRouter(getRouter)
//       router.addRoutes(filterRouter(getRouter).concat([{
//         path: '/error_404',
//         name: 'error_404',
//         component: resolve => require(['@/view/error-page/404'], resolve)
//       }]))
//       next({ ...to, replace: true })
//     } else {
//       next()
//     }
//   } else {
//     next()
//   }
// })
// 动态配置路由 去服务器去的
// let getRouter
// router.beforeEach((to, from, next) => {
//   const token = getToken()
//   if (token && to.name !== 'login' && to.name !== 'registered' && to.name !== 'forgotPwd') {
//     if (!getRouter) {
//       getPost('/sys/sysLogin/userMenus', {}, (data, all) => {
//         /* eslint-disable no-eval */
//         let menu = eval('(' + data + ')')
//         // console.log(menu)
//         getRouter = menu
//         store.state.app.menuList = filterRouter(getRouter)
//         router.addRoutes(filterRouter(getRouter).concat([{
//           path: '/error_404',
//           name: 'error_404',
//           component: resolve => require(['@/view/error-page/404'], resolve)
//         }]))
//         next({ ...to, replace: true })
//       })
//     } else {
//       next()
//     }
//   } else {
//     next()
//   }
// })
// function filterRouter (routerArr) {
//   let arr = routerArr.map(route => {
//     if (route.isLeaf === '0' || route.isLeaf === '1') {
//       let row = {
//         path: route.menuUrl,
//         name: route.routerName,
//         icon: route.menuIcon,
//         meta: {
//           icon: route.menuIcon,
//           title: route.menuName,
//           showAlways: true
//         },
//         component: Main
//       }
//       if (route.menus && route.menus.length) {
//         row.children = route.menus.map(item => {
//           return {
//             path: item.routerName,
//             name: item.routerName,
//             icon: item.menuIcon,
//             meta: {
//               icon: item.menuIcon,
//               title: item.menuName
//             },
//             component: resolve => require(['@/view/pages' + item.menuUrl], resolve)
//           }
//         })
//       }
//       return row
//     }
//   })
//   return arr.filter(item => {
//     if (item) {
//       return item
//     }
//   })
// }

router.afterEach(to => {
  // iView.LoadingBar.finish()
  window.scrollTo(0, 0)
})

router.onError(() => {
  router.push({ path: '/error_404' })
})
